package org.moonlight.jvm.instructions.stores.lstore;

import org.moonlight.jvm.instructions.base.Index8Instruction;
import org.moonlight.jvm.rtda.exclusive.Frame;

/**
 * LSTORE: 把 long变量 从 操作数栈栈顶 弹出，然后存入 局部变量表 索引下标 {@link LStore#idx} 处
 *        其索引来自操作数
 *
 * @author Moonlight
 * @createTime 2023/8/16 15:49
 **/
public class LStore extends Index8Instruction {

    @Override
    public void execute(Frame frame) {
        lStore(frame, this.idx);
    }

    static void lStore(Frame frame, int n) {
        int val = frame.getOperandStack().popInt();
        frame.getLocalVars().setInt(n, val);
    }

}
